這篇是包含 JavaScript,所有的程式語言的名詞介紹(英翻中)。
可以檢視一下自己是否知道這些關鍵字喔!
這個章節裡面 Tony 覺得最重要的概念是 “自己試試看”。
不管是書上的,或是你想解惑的,直接測試會有更直接的體驗。
先列出作者覺得必須把握的部分。
程式設計的學習沒必要是複雜且令人無法承擔的過程。你只需要熟悉少數幾個基本概念就行了
運算子 ( operators )、值與型別 ( values and types )、變數 ( variables )、條件式 ( conditionals )、迴圈 ( loops )、函式 ( functions )。
(他是個玩積木的過程。元件、桌腳、桌子、佈置房子、蓋房子)
一個程式 (program),常稱為原始碼 ( source code ),或簡稱程式 ( code )。是特殊指令,用來告訴電腦要執行的任務。
一般來說儲存在文件檔(txt),但JS還可以在瀏覽器上使用(developr console)。
特定的規範和組合的規則,被稱為程式語言(computer language),或是語法(syntax)
a = b * 2;
a 和 b 是 變數(variable)。
2 是純值(literal value)。
= 和 * 是運算子 (operators)。
以上合再一起,就是述句(statement)。大多數的述句,都會放一個分號。
『某個變數或值,或以運算子結合起來的一組變數或值』的參考。
以同個的例子來說
a = b * 2;
b
是 變數運算式(variablr expression)2
是 字面值運算式(literal value expression)a = b * 2
是指定運算式(assignment expression)b*2
是 算術運算式(artithmetic expression)b*2
也被稱為述句運算式(statement expression)
(就是計算機,不常見也沒什麼用。不會把結果存下來再進一步處理。)
較常見的是呼叫運算式(call expression)
alert(a);
程式必須要被執行(executed)。run the program。a = b * 2
述句,電腦絕對看不懂。
會經過 直譯器(interpreter)或編譯器(compiler),變成電腦懂的語言。
JavaScipt 是直譯式(interpreted)。
即時編譯,即時執行。
console.log(b)
alert(b)
log(b) 是函式呼叫。
log 的功能,就是把內部的值,印在主控台上。
console 是物件參考(object reference)
alert(b) 是彈出的視窗。
使用 console.log 比較好。可以多行輸出,也不像 alert 會中斷操作。
補充:
document.write(b);
document.getElementByID("something").innerHTML = b;
var age = prompt( "請輸入年紀:" )
console.log(age)
類型 | 原文 | 符號 | 功能 |
---|---|---|---|
指定 | assignment | = |
右邊的直指派給左邊的 |
數學 | + - * / |
一般的四則運算 | |
複合指定 | compound operators | += , -= , *= , /= |
a += 2 等同於 a = a + 2 |
遞增遞減 | ++ , -- |
a++ 等同於 a = a + 1 | |
物件特性存取 | . |
特性(properties),物件的值 | |
相等性 | == , != , === , !== |
會回傳這兩個直比較後的布林值 | |
比較 | < , > , <= , >= |
小於,大於,小於等於,大於等於 | |
邏輯 | && ,` |
值的表示法,稱為型別 ( types )。
Number(1); // 1 (number)
String(1); // "1" (string)
Boolean(1); // true (boolean)
值同樣是 1,但轉成不同的型別。有數字、字串和布林值。
字面值(literals)- 由單引號或雙引號括弧起來的。(輸入東東,輸出就是東東)。
JavaScript 還有更多型別。陣列 (array)、物件 (object)、函式 (function)。
強制轉型 (coercion)
var a = "42";
var b = Number(a);
console.log(a); // "42"
console.log(b); // 42
上面是顯性強制轉型(explicit coercion)
(就是你要程式轉)
隱性強制轉型(implicit coercion)
(程式自動幫你轉)
他如何幫你轉有一定的規範。之後會再介紹。
註解的方式
// single-line comment
/*
multiline comment
*/
var a = /* 可以放 */ 1;
var b = 1; // 可以放
將值 (value) 指定 (assign) 給符號式容器 (symbolic container)。成為變數 (variable)
靜態型別 (static typing) & 強型別 (type enforcement)
動態型別 (dynamic typing) & 弱型別 (weak typing)
大括號{...},把一個或多個述句包裹起來的區域。
if (something) {
something();
}
if else (another) {
another();
}
else {
other();
}
while (something) {
something();
}
do {
something();
} while (something);
while 在條件成立,會做一次。
do while 先做一次,再看條件有沒有成立。
引數 ( arguments ),也就是 參數 (parameters)
function doSomething(arguments){
console.log(arguments);
}
function something() {
doSomething('haha');
}
something(); // "haha"
如果有重複的事情要做,請先把它包成函式吧。
藉由函式命名,也可以讓你的程式更簡單易懂。
每個函式都有自己的範疇。
文章有點長,但又想細細的看完前三本。
目前會持續把內容放上來,後續會嘗試放上一句話心得。
如果有需要討論的地方,請留個言吧!(指教可能比較多)
明天見。